草庐IT

c++ - RAII 和 C++ STL

全部标签

C++ STL vector 模拟实现

✅主页:我的代码爱吃辣📃知识讲解:C++之STL🔥创作者:我的代码爱吃辣☂️开发环境:VisualStudio2022💬前言:上次我们已经数字会用了vector,这次我们对其底层更深一步挖掘,其中重点是,Vector中一些深浅拷贝问题。目录一.Vector模拟实现的整体框架二.Vector的构造与析构三.size(),capacity() 四.reserve(),resize()1.reserve()2.resize五.push_back(),pop_back()1.push_back()2.pop_back()六.Vector的迭代器 七.operator[] 八.insert(),eras

【C++】 使用红黑树模拟实现STL中的map与set

文章目录前言1.对之前实现的红黑树进行一些补充和完善1.1析构1.2查找2.STL源码中map和set的实现3.改造红黑树+封装map和set3.1红黑树结构修改3.2map、set的结构定义3.3insert的封装3.4insert测试3.5发现问题并解决3.6红黑树迭代器实现3.7封装set和map的迭代器并测试3.8map的[]重载3.9元素可以修改的问题解决4.代码展示4.1RBTree.h4.2Map.h4.3Set.h4.4Test.cpp前言前面的文章我们学习了红黑树,也提到了C++STL中的map和set的底层其实就是用的红黑树来实现的(而map和set的使用我们前面也学过了)

【C++进阶(一)】STL大法以及string的使用

💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:C++从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习C++ 🔝🔝STL标准库1.前言2.STL库的版本以及缺陷3.STL库的六大组件4.string的使用4.1string类对象常见构造5.string类对象的容量操作5.1size和capacity接口函数5.2empty和clear函数5.3resize和reserve函数6.迭代器以及string的访问和遍历6.1运算符重载[]6.2反向迭代器和范围for7.string类对象的修改操作7.1c_str和find函数8.insert和erase函数9.总结以及拓展1.

C++ STL stack & queue

目录一.stack介绍 二.stack使用三.stack模拟实现普通版本:适配器版本:四.queue的介绍五.queue使用六.queue模拟实现七.deque介绍1.容器适配器2.deque的简单介绍3.deque的缺陷4.为什么选择deque作为stack和queue的底层默认容器一.stack介绍stack------reference1.stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。2.stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其

【C++入门到精通】C++入门 —— 容器适配器、stack和queue(STL)

阅读导航前言stack1.stack概念2.stack特点3.stack使用queue1.queue概念2.queue特点3.queue使用容器适配器1.什么是适配器2.STL标准库中stack和queue的底层结构3.STL标准库中对于stack和queue的模拟实现⭕stack的模拟实现⭕stack的模拟实现总结温馨提示前言文章绑定了VS平台下std::stack和std::queue的源码,大家可以下载了解一下😍前面我们讲了C语言的基础知识,也了解了一些数据结构,并且讲了有关C++的命名空间的一些知识点以及关于C++的缺省参数、函数重载,引用和内联函数也认识了什么是类和对象以及怎么去ne

【C++精华铺】9.STL string

目录1.string类的优势2.string类的常用接口2.1常用构造1.空串构造:string();2.C串构造:string(constchar*s);3.拷贝构造:string(conststring&str);4.字符填充构造:string(size_tn,charc);5.迭代器构造:string(InputIteratorfirst,InputIteratorlast);2.2 string容量操作1.size_tsize(),size_tlength() 2.size_tcapacity()const 3.boolempty()const 4.voidclear() 5.void

[C++] STL_vector使用与常用接口的模拟实现

文章目录1、vector的介绍2、vector的使用2.1vector的定义2.2vector迭代器的使用2.3vector的空间增长问题3、vector的增删查改3.1push_back(重点)3.2pop_back(重点)3.3operator[](重点)3.4insert3.5erase3.6swap1、vector的介绍vector文档介绍vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,

java - Java 中的 RAII 设计模式

我有C++背景,是RAII模式的super粉丝。我广泛使用它来处理内存管理和锁管理以及其他用例。对于Java1.7,我发现我可以使用try-with-resources模式来创建RAII模式。我使用RAII创建了一个示例应用程序并且它可以运行,但我看到来自java的编译器警告。示例应用程序try(MyResourcemyVar=newMyResource(..)){//IamnotusingmyVarhere}我得到以下错误warning:[try]auto-closeableresourcenodeisneverreferencedinbodyofcorrespondingtryst

C++ STL string类模拟实现

目录string类成员变量一.构造函数二.析构函数三.拷贝构造四.size(),capacity()五.operator[]六.operator= 七.字符串比较 八.reserve()九.push_back(),append()十.operator+= 十一.insert() 十二.迭代器 十二.erase()十三.swap() 十四.find()十五.流提取,流输出十六.对比库string和我们的String上期我们已经对string类进行了简单的介绍,大家只要能够正常使用即可。在面试中,面试官总喜欢让学生自己来模拟实现string类,最主要是实现string类的构造、拷贝构造、赋值运算符